import gzip
import base64


s = '16 54 f2 ae a5 95 3b b4 90 84 ed 40 a4 2d d1 59'
s = 'e3 16 b8 06 f8 59 3b f0 5d 92 77 35 e2 5f 34 18'
s = '69 a7 8d b5 2b f3 66 fc 48 91 80 a1 60 9d a3 fd'

s = '46 b2 76 6e e7 ac 90 86 2e b1 5f 05 9f 20 af 17'

s = 'ba 2d 2f ae ef 24 21 c8 e9 ad 15 4b 3c f1 bd 7a'
s = '1b 52 cb 3b f2 ee f1 6b f2 49 c0 68 22 5b 48 b2'

rs = ['0x' + i for i in s.split(' ')]
rss = []
for i in range(0, 4):
    rss.extend(rs[(i) * 4: (i+1) * 4][::-1])
print(', '.join(rs))
print(', '.join(rss))


s = '87 7b dd b6'
rs = [int('0x' + i, 16) for i in s.split(' ')]
print(rs)
a = int.from_bytes(rs, byteorder='little', signed=False)
print(a)


from gmssl.sm4 import  CryptSM4, SM4_ENCRYPT, SM4_DECRYPT

key = '1b 52 cb 3b f2 ee f1 6b f2 49 c0 68 22 5b 48 b2'

iv = '2b 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f'
d1 = 'C4 8E FE 3C D7 48 AC 11 5D 78 54 9A F3 24 02 1D D7 E3 C6 DA 94 C8 4A D5 AB 59 3A 39 17 19 8A 84 AD ED 07 F2 A1 E1 37 5A 6D 7A 43 F0 BF 85 DA 3D 23 F3 29 A5 A5 B4 23 4E 05 4C 4E 5E 9E D5 5F 72 A8 40 F0 13 8A E8 79 D1 94 F4 57 AA 99 B4 62 60 8F B5 18 12 F8 CF 93 0A 23 DE 82 38 FD 76 7F 09 76 7D 75 79 1B 23 01 D7 96 1A 98 55 46 34 BD 14 70 46 7D 21 B9 8A C4 7C 98 E6 FE 1C 1E 77 56 93 62 11 67 C7 C4 8E 53 3E 84 06 44 39 AF 04 4F E3 78 27 5E 0A D8 E8 11 FF 1A 3F 93 4F 76 E7 96 E0 A2 1E 57 93 52 FF FF FD FD 47 26 DE 99 79 F9 9D 67 0E B7 96 C1 3A FF CB B6 F6 ED C9 7B 12 DE 90 43 E6 9C 22 8F F8 4B F4 A9 20 24 44 05 68 E5 A2 15 A6 13 76 3B 5F 65 B6 07 2C 19 CB 01 AF 90 F4 52 EF 1E F3 2F 20 9D C1 5C AB 20 F3 A1 75 44 A2'
d1 = '84 90 39 D6 34 04 B4 9F 5A 73 98 CB D0 26 58 AD A0 E5 07 F0 16 C2 EF BA CA AE 08 05 69 60 AA 50 AE 88 6B 07 76 2F A6 8E F0 0F 74 A3 2B 24 3C 89 43 74 CF F6 F5 61 24 34 F0 AB AA 82 9E 9B 7C D6 F6 29 A8 A7 B8 A1 19 14 C5 EC 95 9F E6 D1 10 8F 86 D2 55 84 C1 E1 42 6C 81 30 90 47 27 D1 C9 11 7E F5 98 13 B4 C1 06 54 87 4A B7 88 76 6E A7 2E CF A2 5C E0 20 E9 C2 57 2E BB 3D 45 35 85 EE C1 2F AE 18 39 75 2C C5 36 71 B9 64 47 BB 3A 94 80 40 A6 FF 73 84 6E 40 99 80 39 C3 E4 43 D0 C3 71 1B 99 72 52 C0 D9 87 19 01 CF 58 C2 BB CD C7 2B FA 84 7E DA E0 25 BB 82 96 FF 15 55 74 AE 8E 63 E3 13 6F 53 EA CC 62 9D 99 46 72 FE 5A 93 52 4D 75 90 38 C9 12 6D 76 A4 93 C6 75 1E AD E8 8A 53 B2 B7 A0 20 54 5D F7 9E 2A 2D FB B6 0F E4 66 FE 72 ED BD 9B F5 68 FC 7C 06 9F D1 64 C3 CF 39 C2 B9 D5 00 B3 A8 1A CB C7 E9 27 2F 13 BA A2 8A 40 79 F3 C7 D9 93 A4 36 E7 93 89 93 3F 44 F9 56 76 B3 EB F7 F4 48 88 4B CF 36 07 7D 1A 61 5A 08 F2 D6 CC 1B 32 14 BE 3B C0 CD 66 EF 67 DF 1E 30 5B FB 8B 81 2A 1C E8 67 3F F0 0E FC 92 C0 C9 CC DF B9 91 39 50 B5 40 BE E3 3B 68 F5 37 D7 72 F7 73 D7 72 66 A2 FB EA B4 9F FA BA DA 7E 3F 65 B7 33'






# d1 = 'e4 84 07 0f 0f 0f 0f 0f 0d 1c ec 6f 1b 9d bb 3b'
key = bytes.fromhex(key.replace(' ',''))
iv = bytes.fromhex(iv.replace(' ',''))
d1 = bytes.fromhex(d1.replace(' ',''))
print(d1, len(d1))
s = CryptSM4(mode=SM4_DECRYPT)
s.set_key(key, mode=SM4_DECRYPT)
aa = s.crypt_cbc(iv, d1)
print(aa.hex(' '))
ass = gzip.decompress(aa)
print(ass)



from gmssl.sm2 import CryptSM2
s = 'MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEzQPKEotPVsfHrVqlUJItgDGc/8r+T5e1xEnnlDjrOdJB9uHPN8tI8WZhRbt4EBaDPB3Zi5iZeQhpXIejp0gXUQ=='
pubKey = base64.b64decode(s.encode())
print(pubKey.hex())
s = CryptSM2(None, pubKey.hex())
print(s)
d = b'vhMH1BfUn0tccr/P'
print(d)
s1,s2 = s.encrypt(d)
print(s1)
print(s2)
# 02 db 59 b2 42 3d b5 0e 02 cc 0f 1d 2c a3 98 59
# print(s.encrypt(d).hex())
# print(s.encrypt(d).hex())